commonlibsse_ng\re\b/
BSTextureSet.rs

1use core::ffi::c_char;
2
3use crate::re::NiObject::{NiObject, NiObjectVtbl};
4use crate::re::NiSourceTexture::NiSourceTexture;
5use crate::re::offsets_ni_rtti::NiRTTI_BSTextureSet;
6use crate::re::offsets_rtti::RTTI_BSTextureSet;
7use crate::re::offsets_vtable::VTABLE_BSTextureSet;
8use crate::rel::id::VariantID;
9
10#[repr(C)]
11#[derive(Debug)]
12pub struct BSTextureSet {
13    pub __base: NiObject,
14}
15const _: () = assert!(core::mem::size_of::<BSTextureSet>() == 0x10);
16
17impl BSTextureSet {
18    pub const RTTI: VariantID = RTTI_BSTextureSet;
19    pub const NI_RTTI: VariantID = NiRTTI_BSTextureSet;
20    pub const VTABLE: [VariantID; 1] = VTABLE_BSTextureSet;
21}
22
23#[commonlibsse_ng_derive_internal::to_bitflags]
24#[repr(u32)]
25#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
26pub enum Texture {
27    Diffuse = 0,
28    Normal = 1,
29    Gloss = 1,
30    EnvironmentMask = 2,
31    SubsurfaceTint = 2,
32    GlowMap = 3,
33    DetailMap = 3,
34    Height = 4,
35    Environment = 5,
36    Multilayer = 6,
37    BacklightMask = 7,
38    Specular = 7,
39    Unused08 = 8,
40    UsedTotal = 8,
41}
42
43impl Texture {
44    /// enum length.
45    pub const TOTAL: usize = 9;
46}
47
48#[repr(C)]
49pub struct BSTextureSetVtbl {
50    pub __base: NiObjectVtbl,
51    pub GetTexturePath:
52        unsafe extern "C" fn(this: *const BSTextureSet, texture: Texture) -> *const c_char, // 0x25
53    pub SetTexture: unsafe extern "C" fn(
54        this: *mut BSTextureSet,
55        texture: Texture,
56        src_texture: *mut NiSourceTexture,
57    ), // 0x26
58    pub SetTexturePath:
59        unsafe extern "C" fn(this: *mut BSTextureSet, texture: Texture, path: *const c_char), // 0x27
60}